Aufgabe Übung Turtle   ?

Stoff des Curriculums Elementare Programmierung

Wiederholungsfragen

Ein Klick auf den roten Hyperlink zeigt die richtige Lösung.

  1. Gegeben sei das folgende Unterprogramm. Es zeichne ein Quadrat der Seitenlänge 100 an der angegebenen Position.

    Sub QuadratFesterLänge(X As Integer, Y As Integer)
      ... einige Anweisungen
    End Sub

    Welche der folgenden Programme melden einen Laufzeitfehler? (mehrere Antworten möglich)

    1.     Dim X As Integer
          Dim Y As Integer
          X = 100
          Y = 200
          QuadratFesterLänge X, Y        Antwort
    2.     Dim X As Integer
          Dim Y As Integer
          X = 100
          Y = 200
          QuadratFesterLänge 100, 200    Antwort
    3.     Dim A As Integer
          Dim B As Integer
          A = 100
          B = 200
          QuadratFesterLänge X, Y        Antwort
    4.     Dim A As Integer
          Dim B As Integer
          A = 100
          B = 200
          QuadratFesterLänge A, B        Antwort
    5.     Dim X As String
          Dim Y As String
          X = 100
          Y = 200
          QuadratFesterLänge X, Y        Antwort
    6.     Dim X As String
          Dim Y As String
          X = "100"
          Y = "200"
          QuadratFesterLänge Y, X        Antwort
  2. Welchen Datentyp wählen Sie, wenn Sie Variablen für folgende Daten bereitstellen müssen?

    Hinweis: Überlegen Sie sich, welche Wertbereiche und welche Operationen Sie benötigen.

    1. .....  Zählvariable für Zählschleife
    2. .....  Passwort
    3. .....  Tramlinie
    4. .....  Anzahl Fahrgäste
    5. .....  Preis für ein Trambillet
    6. .....  Distanz zwischen zwei Haltestellen
    7. .....  Telefonnummer des Tramführers oder der Tramführerin
    8. .....  Geburtsdatum des Tramführers oder der Tramführerin
    9. .....  Vermerk, ob ein Fahrer oder eine Fahrerin auch sonntags eingesetzt werden kann

    1. Integer
    2. Single / Double
    3. Currency
    4. Boolean
    5. String
    6. Date

  3. Der Mod-Operator gibt den Rest bei einer Ganzzahldivision zurück (z.B.: 7 / 2 = 3 Rest 1. Also ist 7 Mod 2 = 1). Gegeben sei eine Funktion, die prüft ob eine Ganzzahl gerade ist:

    Function istGerade(Zahl As Integer) As Boolean
      Zahl = Zahl Mod 2
      If Zahl = 0 Then
        istGerade = True
      Else
        istGerade = False
      End If
    End Function

    Welchen Wert hat die Variable t nach Ausführung des folgenden Programms?

    Dim t As Integer
    t = 128
    If istGerade(t) Then
      t = t + 1
    End If

    1. 1
    2. 65
    3. 128
    4. 129

  4. Erklären Sie Funktion und Wirkung der folgenden Begriffe:

    1. Einzelschritt
    2. Variableninhalt
    3. Kennzeichenleiste
    4. Testen-Symbolleiste
    5. Prozedurschritt
    6. Entwurfsmodus
    1. Makro ausführen
    2. Haltepunkt
    3. Beenden
    4. Codefenster
    5. Aktuelle Ausführungszeile
    6. Prozedur abschliessen

  5. Wie oft wird die folgende Schleife durchlaufen?

    Dim t As Integer
    t = 128
    Do While t > 2
      t = t / 2
    Loop

    1. 6 Mal
    2. 7 Mal
    3. 8 Mal
    4. Endlosschleife

  6. Gegeben sei das folgende Datenfeld:

    Private Personen(1 To 5) As String

    Ein Programm fülle in die Variable Personen die fünf Namen ["Carmen", "David", "Anna", "Elisabeth", "Beat"]. Danach führt es die folgende Schleife aus, wobei i ein Integer und temp ein String sind.

    For i = 1 To 4
      If Personen(i) > Personen(i + 1) Then
        temp = Personen(i)
        Personen(i) = Personen(i + 1)
        Personen(i + 1) = temp
      End If
    Next

    In welcher Reihenfolge befinden sich die Namen nach Ausführung des Programms im Datenfeld?

    1. ["David", "Carmen", "Elisabeth", "Beat", "Anna"]
    2. ["Anna", "Beat", "Carmen", "David", "Elisabeth"]
    3. ["Carmen", "David", "Anna", "Elisabeth", "Beat"]
    4. ["Carmen", "Anna", "David", "Beat", "Elisabeth"]

  7. Wie oft muss man die Schleife in Aufgabe 6. im ungünstigsten Fall ausführen, damit ein beliebiges Datenfeld mit 5 Elementen danach sortiert ist?

    1. 3 Mal
    2. 4 Mal
    3. 5 Mal
    4. im ungünstigsten Fall geht das gar nicht

    Geben Sie ein Beispiel für einen ungünstigsten Fall.

Vertiefungsfragen

Die Turtle-Grafik ist ein bekanntes Feature der Programmiersprache Logo. Logo wurde entwickelt, um Kinder spielerisch in das Programmierens einzuführen. Die Turtle-Grafik wurde später in die Sprachen wie Turbo Pascal aufgenommen. Diese Aufgabe verwendet die Turtle-Grafik, um die grundlegenden Sprachelemente von VBA zu repetieren.

Der erste Teil der Einführung in die Programmentwicklung hat im Beispiel QuadratProgrammiert.xls das Zeichnen von Linien unter einem Koordinatensystem vorgestellt. Die Turtle-Grafik kommt ohne Koordinatensystem aus. Gezeichnet wird, indem einer 'Schildkröte' (engl. turtle) Anweisungen gegeben werden, sich vorwärts zu bewegen oder sich an ihrer aktuellen Position nach links oder rechts zu drehen.

Die Arbeitsmappe TurtleSkelett.xls enthält ein Arbeitsblatt als Benutzerschnittstelle, ein Modul 'Turtle', das einige Befehle der Turtle-Grafik implementiert und ein Modul 'Prozeduren' mit den Prozedurköpfen für die Aufgaben.

Der kleine blaue Punkt auf dem Arbeitsblatt ist der Startpunkt der Schildkröte, unmittelbar nachdem die Schaltfläche 'Lösche' geklickt wurde. Er kann zuvor mit der Maus beliebig positioniert werden. Die Anfangsrichtung der Schildkröte ist Norden.

Das Modul 'Turtle' implementiert folgende Prozeduren:

Die obige Grafik wurde beispielsweise durch folgende Anweisungen gezeichnet:

Start
geheVorwärts 40
dreheRechts 30
geheVorwärts 70
dreheLinks 110
geheVorwärts 20

Laden Sie die Arbeitsmappe TurtleSkelett.xls und lösen Sie die folgenden Aufgaben in den bereitgestellten Prozedurskeletten des Moduls 'Prozeduren'.

Hinweis: Sie brauchen den Programmcode im Modul 'Turtle' nicht anzuschauen.

  1. Implementieren Sie in der Prozedur Nikolaus_Klick eine Sequenz von Anweisungen, welche "das Haus vom Nikolaus" zeichnet. Eine Skizze mit Längen- und Winkelangaben zeigt das nächste Bild.

  2. Implementieren Sie in der Prozedur Pentagramm_Klick ein Programm, welches das im folgenden Bild gezeigte Pentagramm zeichnet. Verwenden Sie eine Schleife.

  3. Implementieren Sie in der Prozedur Spirale_Klick ein Programm, das die im folgenden Bild gezeigte Spirale zeichnet. Jede Linie ist 0.8 Mal so lang wie die vorhergehende. Die letzte Linie soll etwa vier Schritte lang sein. Verwenden Sie eine Schleife.

  4. Implementieren Sie in der Prozedur Sparrenfenster_Klick ein Programm, welches das im nächsten Bild gezeigte Sparrenfenster zeichnet. Implementieren Sie zunächst ein Unterprogramm, das ein Quadrat zeichnet. Als Argument soll ihm die Kantenlänge übergeben werden können. Verwenden Sie das Unterprogramm zum Zeichnen des Sparrenfensters.

  5. Die Schildkröte hat Hunger. Der grosse grüne Punkt neben der 'suche Salat'-Schaltfläche stellt einen Salat dar. Sie können den Punkt mit der Maus beliebig auf dem Arbeitsblatt platzieren. Die Schildkröte soll diesen Salat nun selbständig finden. Das Modul Turtle stellt hierfür vier weitere Funktionen zur Verfügung.

    Die grauen Bereiche im letzten Bild veranschaulichen, welche Funktion wann True zurück gibt. Was 'vorne', 'links' und 'rechts' bedeutet, hängt von der aktuellen Richtung der Schildkröte ab.

    Überlegen Sie sich eine Suchstrategie und implementieren Sie diese.

Lösung LTurtle.xls

Lösung LVariantenSucheSalat.xls

©abo